package com.ling.recipeassistant.data.model

import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.parcelize.Parcelize
import android.os.Parcelable

@Parcelize
@Entity(tableName = "recipes")
data class Recipe(
    @PrimaryKey val id: String,
    val name: String,
    val description: String,
    val imageUrl: String,
    val ingredients: List<Ingredient>,
    val steps: List<RecipeStep>,
    val cookTime: Int, // in minutes
    val difficulty: Difficulty,
    val servings: Int,
    val category: String,
    val tags: List<String>,
    val rating: Float = 0f,
    val reviewCount: Int = 0,
    val isFavorite: Boolean = false,
    val createdAt: Long = System.currentTimeMillis()
) : Parcelable

@Parcelize
data class Ingredient(
    val name: String,
    val amount: String,
    val unit: String
) : Parcelable

@Parcelize
data class RecipeStep(
    val stepNumber: Int,
    val description: String,
    val imageUrl: String? = null,
    val timeMinutes: Int? = null
) : Parcelable

enum class Difficulty {
    EASY, MEDIUM, HARD
} 